/*
 * create_ref_for_blockfile.cpp
 *
 *  Created on: Oct 19, 2012
 *      Author: m
 */

#include <iostream>
#include <memory>
#include <fstream>
#include <cstdlib>

int main ( int argc, char* argv[] )
{
    // Argumentos:
    // argv[1] : archivo de salida
    // argv[2] : tamaño de bloque
    // argv[3] : cantidad de bloques en el archivo
    std::ofstream outFile;
    size_t blockSize, numOfBlocks;

    if ( argc != 4 )
    {
        std::cerr << "Argumentos invalidos. Uso: %prog output blockSize numOfBlocks" << std::endl;
        return 1;
    }

    outFile.open( argv[1], std::ios_base::trunc );
    blockSize = atoi( argv[2] );
    numOfBlocks = atoi( argv[3] );

    unsigned char byte = 0;

    for ( int i=0; i<numOfBlocks; ++i )
        for ( int j=0; j<blockSize; ++j )
        {
            outFile.write( (char*)&byte, 1 );
            ++byte;
        }

    outFile.close();
    return 0;
}

